Add DEFINE_validator macro for convenient registration of a flag validator. git-svn-id: http://gflags.googlecode.com/svn/trunk/src@82 6586e3c6-dcc4-952a-343f-ff74eb82781d
diff --git a/gflags/gflags.h.in b/gflags/gflags.h.in index dd51a2d..eb084f5 100644 --- a/gflags/gflags.h.in +++ b/gflags/gflags.h.in
@@ -135,6 +135,11 @@ bool (*validate_fn)(const char*, const std::string&)); +// Convenience macro for the registration of a flag validator +#define DEFINE_validator(name, validator) \ + static const bool name##_validator_registered = \ + @ac_google_namespace@::RegisterFlagValidator(&FLAGS_##name, validator) + // -------------------------------------------------------------------- // These methods are the best way to get access to info about the
diff --git a/gflags_unittest.cc b/gflags_unittest.cc index 08abc1b..cce60d9 100644 --- a/gflags_unittest.cc +++ b/gflags_unittest.cc
@@ -143,9 +143,7 @@ static bool AlwaysFail(const char* flag, bool value) { return value == false; } DEFINE_bool(always_fail, false, "will fail to validate when you set it"); -namespace { -bool dummy = RegisterFlagValidator(&FLAGS_always_fail, AlwaysFail); -} +DEFINE_validator(always_fail, AlwaysFail); // See the comment by GetAllFlags in gflags.h static bool DeadlockIfCantLockInValidators(const char* flag, bool value) { @@ -160,10 +158,7 @@ false, "will deadlock if set to true and " "if locking of registry in validators fails."); -namespace { -bool dummy1 = RegisterFlagValidator(&FLAGS_deadlock_if_cant_lock, - DeadlockIfCantLockInValidators); -} +DEFINE_validator(deadlock_if_cant_lock, DeadlockIfCantLockInValidators); #define MAKEFLAG(x) DEFINE_int32(test_flag_num##x, x, "Test flag")